/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package produccion;
/**
 *
 * @author Jorge
 */

public class InteriorCompaginable extends TrabajoImpresion {
    
    Integer numPaginas=0;
    
    public InteriorCompaginable(Integer paginas, Color cTira, Color cRetira, Maquina mTira, Maquina mRetira) {
        super(cTira, cRetira, mTira, mRetira);
        numPaginas = paginas;
    }

    public Integer getNumPaginas() {
        return numPaginas;
    }

    public void setNumPaginas(Integer numPaginas) {
        this.numPaginas = numPaginas;
    }

    public Double calcularPliegos(){
        Double pliegosTira=0.0;
        switch (getPub().getFormato()) {
            case A4: pliegosTira = getNumPaginas() / 8.0 ;break;
            case A3: pliegosTira = getNumPaginas() / 4.0 ;break;
            case A6: pliegosTira = getNumPaginas().doubleValue() ;break;
            case A2: pliegosTira = getNumPaginas() / 2.0 ;break;
            case A5: pliegosTira = getNumPaginas() / 16.0;break;
            default:
                throw new AssertionError();
        }
        return pliegosTira;
    }
    
    //reescribe calcular placas tira retira
    @Override
    public Double calcularPlacasTira(){
        Double placasTira=0.0;
        switch (getcTira()) {
            case UNO: placasTira = 1.0 * calcularPliegos();break;
            case DOS: placasTira = 2.0 * calcularPliegos();break;
            case CUATRO: placasTira = 4.0 * calcularPliegos();break;
            case NINGUNO: placasTira = 0.0;break;
            default:
                throw new AssertionError();
        }
        return placasTira;
    }

    @Override
    public Double calcularPlacasRetira() {
        Double placasRetira=0.0;
        switch (getcRetira()) {
            case UNO: placasRetira = 1.0 * calcularPliegos();break;
            case DOS: placasRetira = 2.0 * calcularPliegos();break;
            case CUATRO: placasRetira = 4.0 * calcularPliegos();break;
            case NINGUNO: placasRetira = 0.0;break;
            default:
                throw new AssertionError();
        }
        return placasRetira;
    }
    
    //no reescribe calcular tiempo impresion tira retira
}
